#ifndef _INI_PARSER_H_
#define _INI_PARSER_H_

#include <iostream>
#include <fstream>
#include <sstream>
#include <string>
#include <map>
#include <stdexcept>

class IniFileParser
{
private:
    std::map<std::string, std::string> iniMap;
    // 私有成员函数，用于读取INI文件并填充iniMap
    bool parseIniFile(const std::string &filename);
public:
    // 构造函数可以自动尝试解析INI文件
    IniFileParser(const std::string &filename);

    // 尝试获取指定键的值，如果键不存在则返回空字符串
    bool getStrValue(const std::string &key, std::string &value) const;

    // 尝试将指定键的值转换为整型，如果转换失败或键不存在则抛出异常
    bool getIntValue(const std::string &key, int &value) const;
};
#endif // _INI_PARSER_H_
